<template>
	<section>
		<view class="xc-wrap" v-if="!sr.conf">
			<uv-empty mode="data" marginTop="100px" text="没有会议,请联系管理员"></uv-empty>
		</view>
		<view class="xc-wrap" v-if="sr.conf">
			<xc-uniapp-swiper :files="sr.conf.images"></xc-uniapp-swiper>

			<view class="xc-block">
				<view class="xc-title">{{sr.conf.name}}</view>
				<view class="xc-content" v-if="sr.conf.meetdate!=null">会议时间: {{sr.conf.meetdate}}</view>
				<view class="xc-content" v-if="sr.conf.meetdate!=null">会议地点: {{sr.conf.meetaddress}}</view>
				<view class="xc-content" v-if="sr.conf.unsignedcontentq!=null">{{sr.conf.unsignedcontentq}}</view>

				<xc-uv-clogin-loginform ref="xc-uv-clogin-loginform"
					@onLoginSuccess="onLoginSuccess"></xc-uv-clogin-loginform>
				<uv-button v-if="!sr.confuser" class="xc-pt" type="primary" text="立即报名1"
					@click="control_signin"></uv-button>

				<view class="xp-title-tag Y" v-if="sr.confuser">已报名</view>
				<view class="xp-title-tag N" v-if="!sr.confuser">未报名</view>
			</view>

			<section v-if="sr.confuser==null && sr.conf.unsignedcontentq!=null">
				<view class="xc-sep">&nbsp;</view>
				<view class="xc-block">
					<uv-parse :content="sr.conf.unsignedcontentq" />
				</view>
			</section>

			<section v-if="sr.confuser!=null && sr.conf.siginedcontent!=null">
				<view class="xc-sep">&nbsp;</view>
				<view class="xc-block">
					<uv-parse :content="sr.conf.siginedcontent" />
				</view>
			</section>

			<view class="xc-sep">&nbsp;</view>
			<view class="xc-block">
				<uv-tabs :list="sr.confinfos" @click="control_clickTab" keyName="title" :scrollable="true"></uv-tabs>
				<view class="xc-content"><uv-parse :content="control.info_content" /></view>
			</view>
			
		</view>
	</section>
</template>

<script>  
	import JWeixin from'weixin-js-sdk';
	import config from "@/config/config.js";
	import xcHttpUtils from '@/library/xcore/js/XcHttpUtils.js';
	import xcViewUtils from '@/library/xcore/js/XcViewUtils.js';
	import xcCloginUtils from '@/library/xcore/js/XcCloginUtils.js';
	import {
		xsStringUtils,
		xsDateUtils,
		xsArrayUtils
	} from 'xstack-for-javascript';




	export default {
		data() {
			return {
				config: config,
				xsStringUtils: xsStringUtils,
				xsDateUtils: xsDateUtils,
				sp: {
					id: null
				},
				sr: {
					userinfo: null,
					conf: null, //会议信息
					confinfos: [], //会议item list
					confuser: null, //当前用户的报名信息
					signordernum: null, //报名名次
				},
				control: {
					info_content: "",
					loginStyle: {
						height: '80rpx',
						background: 'blue',
						color: '#fff',
					}
				},
				skeleton: [{
					type: 'line',
					num: 3,
					gap: '10px',
					style: ['width: 150px;', 'width: 200px;', 'width: 250px;'],
				}]
			}
		},
		onLoad(options) { 
			let that = this;
			//let sp_id = options.id ? options.id : xcHttpUtils.getUrlParam("id");
			let sp_id = xcHttpUtils.getUrlParam(options,"id");
			that.sp.id = parseInt(sp_id);
			that.xinit(); 
			that.getwx(); 
			console.log(11)
			 

		}, 
		
		onShow() {
			let that = this;
			that.$nextTick(function(res) {
				that.public_show();
			});
		},
		onPullDownRefresh() {
			let that = this;
			setTimeout(function() {
				that.public_show();
				uni.stopPullDownRefresh();
			}, 1000);
		},
		methods: {
			getwx() {
				 
					 let timestamp = new Date().getTime(); //时间戳
					 let noncestr = '1111111111111111'; //生成签名的随机串
					 
					 //base.js：
					 const randomString =function (len){
						 let _charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789',
							 min = 0, 
							 max = _charStr.length-1, 
							 _str = '';                    //定义随机字符串 变量
						 //判断是否指定长度，否则默认长度为15
						 len = len || 15;
						 //循环生成字符串
						 for(var i = 0, index; i < len; i++){
							 index = (function(randomIndexFunc, i){         
										 return randomIndexFunc(min, max, i, randomIndexFunc);
									 })(function(min, max, i, _self){
										 let indexTemp = Math.floor(Math.random()*(max-min+1)+min),
											 numStart = _charStr.length - 10;
										 if(i==0&&indexTemp >=numStart){
											 indexTemp = _self(min, max, i, _self);
										 }
										 return indexTemp ;
									 }, i);
							 _str += _charStr[index];
						 }
						 return _str;
					 }
			// 获取signature签名
			
			let that = this; 
			   
			
			console.log(2222222); 
			   
			
			xcHttpUtils.post("/csmsignin/xp_conf/getById1", {
				data: {
								timestamp: timestamp,
								noncestr: noncestr,
								id: that.sp.id,
								url: window.location.href // 注意传入的url一定要是客户端当前页面的完整路径，包含路径中带的参数，例如：http://XXX.com?type=1
							}
			}, function(res) { 
				 console.log('##1',res); 
				 
				 if (res) {
					  console.log('##2',res.app_id); 
				 	JWeixin.config({
				 		beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
				 		debug: res.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
				 		appId: res.app_id, // 必填，企业微信的corpID
				 		timestamp: res.timestamp, // 必填，生成签名的时间戳
				 		nonceStr: res.noncestr, // 必填，生成签名的随机串
				 		signature: res.signature, // 必填，签名，见附录1
				 		jsApiList: [
							'updateAppMessageShareData', 'updateTimelineShareData' 
				 		] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
				 	});
				 	JWeixin.ready(function(){
						
						 JWeixin.updateAppMessageShareData({
							title: res.title, // 分享标题
							desc: res.desc, // 分享描述
							link:res.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
							imgUrl: res.imgUrl, // 分享图标
						}, function (res) {
							// console.info("success")
						}); 
						JWeixin.updateTimelineShareData({
							title:  res.title, // 分享标题
							link: res.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
							imgUrl: res.imgUrl, // 分享图标
						}, function (res) {
							// console.info("success")
						}); 
						
						
						
						// console.log('ok:',44);
				 	    // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
				 	});
				 	JWeixin.error(function(res){
				 	    // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
				 		console.log('error:',res);
				 		// alert('jweixin.error='+res);
				 	});
				 }
				 
				 
				 
			});
					 
			 console.log(333); 
			//    	xcHttpUtils.get({
			// 			url: "WeChat/getJsSDKSignature",
			// 			data: {
			// 				timestamp: timestamp,
			// 				noncestr: noncestr,
			// 				url: window.location.href // 注意传入的url一定要是客户端当前页面的完整路径，包含路径中带的参数，例如：http://XXX.com?type=1
			// 			},
			// 			success: function(res) {
			// 				if (res.data.data) {
			// 					jweixin.config({
			// 						beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
			// 						debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
			// 						appId: base.appid, // 必填，企业微信的corpID
			// 						timestamp: timestamp, // 必填，生成签名的时间戳
			// 						nonceStr: noncestr, // 必填，生成签名的随机串
			// 						signature: res.data.data.signature, // 必填，签名，见附录1
			// 						jsApiList: [
			// 							'selectEnterpriseContact' 
			// 						] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
			// 					});
			// 					jweixin.ready(function(){
			// 					    // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
			// 					});
			// 					jweixin.error(function(res){
			// 					    // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
			// 						console.log('error:',res);
			// 						alert('jweixin.error='+res);
			// 					});
			// 				}
			
			// 			},
			// 			fail: function(res) {
			// 				console.log('error:', res);
			// 			}
			//        })
			}, 
			
			shareToWeChat() {
			        const shareData = {
			            title: '分享标题',
			            desc: '分享描述',
			            link: 'https://your-link.com', // 分享链接
			            imgUrl: 'https://your-image-url.com/image.jpg' // 分享图片链接
			        };
			
			        // 调用微信JS-SDK分享
			        uni.request({
			            url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=YOUR_APP_ID&secret=YOUR_APP_SECRET',
			            method: 'GET',
			            success: (res) => {
			                const accessToken = res.data.access_token;
			
			                // 调用分享接口
			                uni.request({
			                    url: 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=' + accessToken,
			                    method: 'POST',
			                    data: {
			                        touser: '用户的OpenID',
			                        msgtype: 'text',
			                        text: {
			                            content: shareData.desc
			                        }
			                    },
			                    success: (response) => {
			                        console.log('分享成功', response);
			                    },
			                    fail: (error) => {
			                        console.error('分享失败', error);
			                    }
			                });
			            }
			        });
			    },
			
			
			
			xinit() {
				let that = this;
				xcCloginUtils.getUserinfo(function(userinfo) {
					that.sr.userinfo = userinfo;
				});
			},
			public_show() {
				let that = this;
				xcHttpUtils.getById("conf", that.sp.id, function(res) {
					// xcHttpUtils.processRowImages(res.conf, ["images"]);
					  console.log('##',res.conf.images);

					that.sr.conf = res.conf;
					that.sr.confinfos = res.confinfos;
					that.sr.confuser = res.confuser;
					if (xsArrayUtils.length(that.sr.confinfos) > 0) {
						that.control.info_content = that.sr.confinfos[0].content;
					}
				})
			},
			public_reset() {
				let that = this;
				that.public_show();
			},
			onLoginSuccess(userinfo) {
				let that = this;
				that.sr.userinfo = userinfo;
				that._signin();
			},
			control_clickTab(item) {
				let that = this;
				that.control.info_content = item.content;
			},
			control_signin() {
				let that = this;
				if (that.sr.userinfo != null && that.sr.userinfo['mobile'] != null && that.sr.userinfo['mobile'] != "") {
					that._signin();
				} else {
					that.$refs["xc-uv-clogin-loginform"].public_open();
				}
			},
			_signin() {
				let that = this;
				xcHttpUtils.post("csmsignin/xp_conf/submitSignin", {
					confid: that.sp.id
				}, function(res) {

					that.sr.signordernum = res.signordernum;
					that.sr.confuser = res.confuser;
					xcViewUtils.toast("报名成功，您是第" + res.signordernum + "个报名人！");
					that.public_reset();
				});
			},

		}
	}
</script>

<style lang="scss">
	.xp-title-tag {
		position: absolute;
		top: 25px;
		right: 10px;
		border-radius: 10px;
		padding: 5px 10px;
	}

	.xp-title-tag.Y {
		background-color: $uni-color-warning;
		color: $uni-text-color;
	}

	.xp-title-tag.N {
		background-color: $uni-color-error;
		color: $uni-text-color-inverse;
	}
</style>